﻿using PMS.Data.Entities.Stores;

namespace PMS.Services.SharedKernel
{
    /// <summary>
    /// Store context
    /// </summary>
    public interface IStoreContext
    {
        /// <summary>
        /// Gets the current store
        /// 根据Store.Hosts设置的访问域名判定通过当前URL访问的资源归属哪个店铺
        /// 多店铺模式下每个店铺应分配唯一域名(无论一级或二/三级域名)
        /// 如： 店铺1 Store.Hosts = "store1.domainname.com,store1mobile.domainname.com"
        ///     店铺2 Store.Hosts = "store2.domainname.com"
        ///     
        /// 本系统设计的多店铺是基于以下理念：
        ///     多店铺为同一公司/个人 所设立的分店或加盟店，多店商品可共享展示(也可只专属某一店铺)
        ///     店铺经营范围相同(或相似)，经营资源、注册用户可共享
        /// </summary>
        /// <exception cref="PMSException">
        ///     外部调用时注意使用 try/catch包裹捕捉 PMSException
        ///     当访问的store处于关闭装态时，跳转至提示页面或其他处理
        /// </exception>
        Store CurrentStore { get; }

    }
}
